#ifndef __Scene_SceneObject_h__
#define __Scene_SceneObject_h__

#include "Render/Renderable.h"
#include "Render/Shader.h"
#include "Scene/Transformable.h"

namespace vital {

	//--------------------------------------------------------------------------
	class TSceneObject : public TTransformable {

	public:
		TSceneObject(IRenderable *renderable, IShader *shader);
		~TSceneObject();

		void render();

		IShader * getShader();

		unsigned long getVisFlags();
		void setVisFlags(unsigned long flags);

		bool isVisible(unsigned long mask);

	private:
		IShader *mShader;
		IRenderable *mRenderable;
		unsigned long mVisFlags;
	};

}

#endif	// __Scene_SceneObject_h__